Skip to main content

3. QR Code Payload Data Object

The content of the NEPALPAY QR Code includes the following 5 groups of data objects and as per EMV QRCPS.

  1. QR Code Conventions

  2. Merchant Account Information

  3. Additional Merchant Information

  4. Transaction Value

  5. Additional Data Template

3.1. QR Code Convention

The QR Code Conventions (Table 4.1) specify conventions used for the QR Code content, such as Payload Format indicator, which defines the version of the QR Code template and hence the conventions on the identifiers, lengths and values.

Table 4.1: QR Code Conventions

IDNameLengthPresenceRemarks
"00"Payload Format Indicator "02"MA fixed value of “01”
"01"Point of Initiation Method "02"O“11” for static QR Codes; “12” for dynamic QR Codes
"63"Cyclic Redundancy Check (CRC)"04"MChecksum calculated over all the data objects included in the QR code

The Payload Format Indicator (ID “00”) shall contain a value of "01". All other values are RFU.

NEPALPAY QR Techncial & API Specification Public 9/47 The Point of Initiation Method (ID “01”) shall contain a value of "11" or "12". All other values are RFU. The value of "11" should be used when the same QR Code [static] is shown for more than one transaction and the value of “12” should be used when a new QR Code [dynamic] is shown for each transaction.

The CRC (ID “63”) shall be calculated according to [ISO/IEC 13239] using the polynomial '1021' (hex) and initial value 'FFFF' (hex). The data over which the checksum is calculated shall cover all the data objects, including their ID, Length and Value, to be included in the QR Code, in their respective order, as well as the ID and Length of the CRC itself (but excluding its Value). Following the calculation of the checksum, the resulting 2-byte hexadecimal value shall be encoded as a 4-character Alphanumeric Special value by converting each nibble to an Alphanumeric Special character. For example, a CRC with a two-byte hexadecimal value of '007B' is included in the QR Code as "6304007B".

3.2. Merchant Account Information

The Merchant Account Information specifies the identity of a merchant. Each payment operator may define its own format of the Merchant Account Information IDs. Table 3.2A shows the allocation of Merchant Account Information IDs among various payment operators.

Table 3.2A: Merchant Account Information

IDNameLengthPresenceRemarks
“02” - “03”Reserved for VisaVar up to “99”
    M
    One or more data objects (IDs "02" to "51" shall be included)
“04” - “05”Reserved for Mastercard
“06” - “08”Reserved by EMVCo
“09” - “10”Reserved for Discover
“11” - “12”Reserved for Amex
“13” - “14”Reserved for JCB
“15” - “16”Reserved for UnionPay
“17” - “25”Reserved by EMVCo
“26” - “28”Used by PSOs in Nepal
“29”Used for NEPALPAY QR of NCHL in Nepal
“30” - “51”NOT USED Reserved for the future Dynamically used by payment operators for use in NepalDynamically used by payment operators for use in Nepal

The IDs ”26” to “51” are Merchant Account Information templates, which may include primitive data objects and other templates that can be defined by individual payment operators. The ID “29” is to be used by the entities associated with NEPALPAY QR.

The Merchant Account Information template shall contain a primitive Globally Unique Identifier data object with a data object ID "00" to identify the payment operator and the corresponding merchant account information specific to that payment operator as shown in below table.

Table 3.2B: Data Object ID Allocation in Merchant Account Information Template for NEPALPAY QR (ID 29)

IDNameFormatLengthPresenceRemarks
"00"Globally Unique IdentifieransVar. up to "32"MAn identifier to identify the payment operator which uses this template to define the Merchant Account Information. The specification for this field is provided below.
"01"-"99"Payment network specificSOAdditional data objects to define the Merchant Account Information specific to the payment operator

The value of the Globally Unique Identifier (GUID) field shall be in the following format:GUID

  • “NCHL” + 8 CHARACTER ACQUIRER_CODE + MERCHANT_CODE
  • “NCHL” will be a constant to be appended as a prefix while creating the GUID
  • 8 Character Acquirer Code will be provided by NCHL after enrollment in the NPI system
  • MERCHANT_CODE will be a variable length representation as made by the acquirer.
    • This code is supposed to be unique for a particular acquirer.
    • The maximum length of this code is 20 characters.

Payment Network Specific

Any other specific information to further define merchant account can be further accommodated under payment network specific data. These data will be context specific and outside of the scope of specification.

3.3. Additional Merchant Information

The Additional Merchant Information (Table 3.3A) specifies the information about a merchant such as merchant name and business location.

Table 3.3A: Additional Merchant Information

IDNameFormatLengthPresenceRemarks
"52"Merchant Category CodeN"04"MFour-digit number listed in ISO 18245
"58"Country Codeans"02"M
"59"Merchant Nameansvar upto "25"M
"60"Merchant Cityansvar upto "15"M
"61"Postal Codeansvar upto "10"O
"64"Merchant Information - Language TemplateSvar upto "99"OA template with other primitive data objects (See EMV QRCPS for details)

The Merchant Category Code (MCC) (ID “52”) shall contain an MCC as defined by [ISO 18245]. The MCC should indicate the Merchant Category Code of the merchant. Put a dummy code of “0000” in the MCC field if the payment operator does not use this information.

The Country Code (ID “58”) shall contain a value as defined by [ISO 3166-1 alpha 2]. The Country Code should indicate the country in which the merchant transacts. Put “NP” in the Country Code field if the merchant transacts in Nepal.

The Merchant Name (ID “59”) shall be present. The Merchant Name should indicate the “doing business as” name for the merchant. If the QR code information supports only payment operators who supply merchant information via the payment operator’s centralized database, this field may be populated with a dummy code of “NA” in the Merchant Name field. In all other instances, the Merchant Name field must indicate the “doing business as” name for the merchant.

The Merchant City shall be present (ID “60”). The Merchant City should indicate the city of the merchant's physical location. Mention “KATHMANDU” in the Merchant City Code field if the merchant is located in Kathmandu.

The Merchant Information – Language Template (ID “64”) is a template, which contains other data fields, which may be used by a mobile application to present the merchant information in an alternate language.

Table 3.3B: Data Fields for Merchant Information – Language Template (ID “64”)

IDNameFormatLengthPresenceRemarks
"00"Language Preferenceans"02"M
"01"Merchant Name - Alternate LanguageSVar upto "25"M
"02"Merchant City - Alternate LanguageSVar upto "15"O
"03" - "99"RFU for EMVCoSVar upto "99"Data objects reserved for EMVCo

If the Merchant Information – Language Template (ID “64”) is present, the template shall contain the Language Preference field (ID "00") and Merchant Name — Alternate Language field (ID "01"). It may contain the Merchant City — Alternate Language field (ID "02"). All other IDs within the Merchant Information—Language Template are RFU for EMVCo.

The data fields with IDs "01" and "02" are used as an addition to the merchant information under the root. While the equivalent data objects under the root are defined with a format of Alphanumeric Special, and as such can only contain the Common Character Set, the data fields with IDs “01” and “02”, if present, are defined with a format of String, so therefore may contain a different character set.

The Language Preference field (ID “00”) shall contain 2 alphabetical characters coded to a value defined by [ISO 639]. The value should represent the single language used to encode the Merchant Name— Alternate Language field (ID “01”) and the optional Merchant City—Alternate Language field (ID “02”).

3.4. Transaction Value

The Transaction Value data objects (listed in Table 3.4) specify the currency and amount of transaction. They also include tip or convenience indicators, which allow merchants or customers to specify the convenience fee in fixed value or percentage.

Table 3.4: Transaction Value

IDNameFormatLengthPresenceRemarks
“53”Transaction CurrencyN“03”MA numeric code based on ISO 4217, e.g., put “524” for NPR.
“54”Transaction AmountansVar. up to “13”C
“55”Tip or Convenience IndicatorN“02”O
“56”Value of Convenience Fee FixedansVar. up to “13”C
“57”Value of Convenience Fee PercentageansVar. up to “05”C

The Transaction Currency (ID “53”) shall conform to [ISO 4217] and shall contain the 3-digit numeric representation of the currency. For example, NPR is represented by the value "524". The value should indicate the transaction currency in which the merchant transacts.

The Transaction Amount (ID “54”), if present, shall be different from zero, shall only include (numeric) digits "0" to "9" and may contain a single "." character as the decimal mark. When the amount includes decimals, the "." character shall be used to separate the decimals from the integer value and the "." character may be present even if there are no decimals. The Transaction Amount shall not be included if the mobile application should prompt the consumer to enter the amount to be paid to the Merchant.

The payment system operators should follow the rules and format in accordance with the EMV QRCPS to process the Transaction Value IDs of the QR Code.

3.5. Additional Data Template

The ID “62” is a template which includes common additional data objects such as Bill Number and Reference Label. It also allows payment operators to define their own additional data objects.

Table 3.5: Additional Data

IDSub-IDNameFormatLengthPresenceRemarks
"62""01"Bill NumberansVar up to "25"O
"02"Mobile NumberansVar up to "25"O
"03"Store LabelansVar up to "25"O
"04"Loyalty NumberansVar up to "25"O
"05"Reference LabelansVar up to "25"O
"06"Customer LabelansVar up to "25"O
"07"Terminal LabelansVar up to "25"O
"08"Purpose of TransactionansVar up to "25"O
"09"Transaction Additional Consumer DataansVar up to "25"O
"10" - "49"Reserved for EMVCoSO
"50"Reserved for FPSSO
"51"Used for the NCHLSO
"52" - "99"Reserved for payment system operators in NepalSODynamically used by payment operators for use in Nepal

The payment operators should follow the rules and format in accordance with the EMV QRCPS to process the Data Objects for Additional Data Field Template of the QR Code. As the maximum data size of this Additional Data Field Template (ID “62”) is only 99 characters, it is highly recommended that the operators make use of the pre-defined additional data objects (Sub-IDs “01” – “09”) and avoid defining their own additional data objects in this template so as to prevent data overflow when QR codes of several payment system operators are combined into one NEPALPAY QR Code